DDR部分Layout

〇.背景

本文所属目录层次为:

-> 1.硬件设计
    -> 2.PCB设计
        -> 2.DDR部分Layout

主要介绍荔枝板的DDR布线

一.DDR布线一般规则

阻抗匹配

  • DQn/DM/DQS, CLK,传输线阻抗50欧,差分阻抗100欧
  • 线距3W,或者至少4mil

等长约束

  • CKP/N严格等长(<5mil),长度小于4inch
  • DQS以CLK为基准,误差+-250mil,P/N间严格等长,<5mil
  • DQ八根一组与对应DQ严格等长,误差50mil
  • DM与对应DQ严格等长,误差50mil
  • ADDR[0:14]以CLK为基准,误差100mil。
  • 剩余控制信号以CLK为基准,误差100mil。

差分线约束

  • 差分线和其他线距离12mil以上,长度差<5mil,线间距>4mil
  • 蛇形线的平行长度不宜过长,宜45度走线

电源滤波

  • 每个电源管脚放104,至少有一个10uf
  • 每2厘米电源线放一个10uf

二.DDR布线实用规则

阻抗匹配规则

  • 阻抗匹配适用于“长”线传输,一般来说信号线长超过十分之一的波长才需要考虑阻抗匹配。
PP胶介电常数约4.7,电磁场传播速度约(1/sqrt(4.7))=1/2.1, 即传播速度为 150mm/ns~6inch/ns DDR3-1066时钟频率533MHz~0.5GHz,周期约2ns, 所以波长约300mm,波长/10约30mm 所以当DDR信号线走线长度小于30mm~1200mil时,可以不考虑阻抗匹配
荔枝板在实际布线时可以目测到走线长度在1000mil以内,所以无需特别进行阻抗匹配。
  • 另一方面,可以计算阻抗失配后的波峰波谷电压,看是否在合理范围
荔枝板prepreg为0.2mm(7628),走线为5mil,计算得阻抗约75~80欧,归一化阻抗约1.5 反射系数=(1.5-1)/(1.5+1)=0.2 VH波峰电压=1.5x1.2=1.8V <= Vmax 1.8V VH波谷电压=1.5x0.8=1.2V > 0.75+0.1 = 0.85V 所以这种程度的阻抗失配还不会直接造成信号传输错误

通过以上规则的取舍,实际应用中可以省下几百块阻抗费 O(∩_∩)O~ (阻抗计算器si9000)

等长约束规则

  • 等长约束通常是芯片相关的,最好翻阅对应芯片的手册
  • 有时候蛇形走线造成的串扰影响甚至会超过不等长的影响,这里也需要取舍

三.DDR布线小技巧

  • 放DDR之前先 大致确认下连线最长和最短的信号线,合理摆放使得两个最值之间的差距尽量小
  • 放置好DDR后,先打好电源引脚的过孔,放上滤波电容,防止布好线后找不到地方打孔。。
  • 走线时先走最长的线和差分线,确定长度基准
  • 需要绕等长时,外部的线直接往外扩,让内部线有空间绕等长
  • 顶层和底层的走线数目大致相同,可以使得布线面积较小

四.Altium Designer 布DDR指南

  • AD15之后的版本具有x-signal功能,类似x-net,可以利用该功能控制等长
    • 首先选中CPU和DDR,然后右键->xsignals->create xsignals between component,即可添加需要的信号线到xsignal
    • 然后可以在rule里设置规则,在右下角的PCB里点开查看信号线长度
  • 调整差分线等长,T->I, 交互式差分线长度调整;
    • tab键,输入要调整到的长度,以及幅度,间距(建议更大于3W)等
    • 通过1234来微调蛇形形状,逗号,句号 调整幅度
    • 空间有限时,可以手动来调整线长。
    • 调整差分线接近最长的其他走线
  • 调整其它线长T->R (交互式线长调整),
    • 按tab设置等长选项(会自动以原理图里的差分线为基准),可以设置蛇形幅度,间距(最好3W以上)
    • 然后按1234等按键微调蛇形形状,调整至等长;按逗号和句号调整幅度;
    • 最终效果